The present invention relates to an interpolation system for video display devices, and, more particularly, to an interpolation system capable of using a one-dimensional interpolator to perform both the X and Y interpolation.
Video display systems have been developed which employ digital technology for transmission and storage of display data. A display can be stored digitally and retrieved to generate a video image by redintegration of the image pixel to pixel. The need for two-dimensional interpolation arises when providing a zoom capability for the display of digitized images required either to reconstruct an image only part of which was actually stored, or to produce an enlarged view of a smaller image. A typical method for providing this capability is to add interpolated pixels (picture cells) between the original data pixels. The number of added pixels determines the amount of zoom provided. An example of a four to one zoom is illustrated in Table 1.
TABLE 1 ______________________________________ Pixel 0 1 Pixel 0 0.1 0.2 0.3 1 Line 0 .cndot. .cndot. Line 0 .cndot. X X X .cndot. Line 1 .cndot. .cndot. Line 0.1 X X X X X (a) Line 0.2 X X X X X Line 0.3 X X X X X Line 1 .cndot. X X X .cndot. ______________________________________
In the original data lines 0 and 1 are stored as a series of pixels at points 0, 1, etc., as shown in part (a) of Table 1. After two-dimensional interpolation lines 0 and 1 are separated by lines whose position is designated 0.1, 0.2 and 0.3 and the original pixels in each line are separated by pixels whose position is designated 0.1, 0.2 and 0.3, as shown in part (b) of Table 1. This pattern is repeated for the full extent of the video image, thereby linearly expanding the image in two dimensions. For black and white displays, an intensity data for each pixel is stored. The intensity determines the shade ranging from white to black that will be displayed by the video display. The interpolation between pixels provides a value of intensity for the interpolated pixels.
A typical method for determining the intensity values of the interpolated pixels based upon the intensity values of the original image pixels is called a bilinear interpolation. The formula for obtaining the interpolated pixels is as follows: EQU I.sub.(.alpha.,.beta.) =(1-.beta.) [(1-.alpha.)I.sub.(0,0) +.alpha.I.sub.(I,0) ]+.beta.[(1-.alpha.)I.sub.(0,1) +.alpha.I.sub.(1,1) ]
where I is the intensity of a pixel designated by its subscript, and .alpha. and .beta. represent the x (horizontal and y (vertical) coordinates, respectively, of the image array expressed as fractional distances between the stored pixel values (0&lt;.alpha.&lt;1 and 0&lt;.beta.&lt;1). The terms enclosed in the first set of square brackets represent a linear interpolation in the direction of the two pixels in the top line of the four pixel image represented in FIG. 1A. The terms of the second set of square brackets represent a linear interpolation in the x direction of the two pixels in the bottom line. The x direction interpolation creates new pixels between the original pixels as a single line. The weighted combination of the quantities in the two square brackets represents an interpolation of the y dimension which creates a new interpolation in the x dimension, thus resulting in the four to one bilinear interpolated image having the relative weights of the intensities along the .alpha. and .beta. dimensions shown in FIG. 1B. The value of .alpha. in the x dimension varies in uniform increments from 0 through 1, in that a linear interpolation is produced by the formula above. Similarly, .beta. varies uniformly in the y dimension to produce the linear interpolation in the vertical direction.
The bilinear interpolator function has typically been accomplished by employing a computer with an image stored in its memory to compute an enlarged image which must also be stored in the computer memory. This method of interpolation is slow and results in delays of several seconds between the initiation of a zoom request and display of the image. A requirement of many display systems is the need to rapidly switch between many enlarged images, and for these applications a large lead time is required to permit the computation of the many enlarged images required. In this technique, each image is fed into a computer which generates the interpolations necessary to enlarge the image, and then stores the enlarged image into computer memory. Each separate image requires a separate memory capable of storing data for each pixel of the image, typically 64,000 cells, and the circuitry necessary to quickly switch between a plurality of stored image memories in order to produce a simulated real time image.
An alternative approach to realizing a real time interpolator would be to use three linear interpolators. One interpolator would provide interpolation in the x direction for a designated line. A second interpolator would compute interpolated pixels in the x direction for a succeeding line to provide sets of pixel data for a y direction interpolation performed by the third interpolator. This approach would require many more parts for the additional interpolators and, since two image lines must be read simultaneously from the image memory in order to perform the y direction interpolation, a more complicated memory control circuit with additional parts would be required.